-- Copyright (c) 2025 Huawei Technologies Co., Ltd.
-- openUBMC is licensed under Mulan PSL v2.
-- You can use this software according to the terms and conditions of the Mulan PSL v2.
-- You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2
-- THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-- EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-- MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-- See the Mulan PSL v2 for more details.

local log = require 'mc.logging'
local class = require 'mc.class'
local base_suit = require 'suits.test_base_suit'
local trusted_component_suit = require 'suits.basic.test_trusted_component'
local component_integrity_suit = require 'suits.basic.test_component_integrity'
local measurement_suit = require 'suits.basic.test_measurement'
local certificate_suit = require 'suits.basic.test_certificate'

local common_suit = class(base_suit)

function common_suit:setupClass()
    log:notice('================ test CommonSuit setupClass ================')
end

function common_suit:run()
    log:notice('================ test base_function_test start ================')
    -- the functions to be test
    self:run_case_suit(trusted_component_suit, self.m_bus, self.test_data_dir)
    self:run_case_suit(component_integrity_suit, self.m_bus, self.test_data_dir)
    self:run_case_suit(measurement_suit, self.m_bus, self.test_data_dir)
    self:run_case_suit(certificate_suit, self.m_bus, self.test_data_dir)
    log:notice('================ test base_function_test complete ================')
end

return common_suit